home *** CD-ROM | disk | FTP | other *** search
- %**********************************************************************/
- %* */
- %* Copyright (C) 1993-1997 */
- %* by Liberty Systems, Redlands, CA. All rights reserved. */
- %* */
- %* This program is the exclusive property of Liberty Systems and is */
- %* issued in strict confidence under a prearranged license agreement */
- %* and is not to be disclosed in any manner to persons outside the */
- %* licensed organization and shall not be reproduced or disseminated */
- %* in whole or part to anyone outside the licensed organization */
- %* without the prior written approval of Liberty Systems unless */
- %* otherwise provided for by such license agreement. */
- %* */
- %* This program may be used and copied only in accordance with the */
- %* terms of said license agreement and with the inclusion of the */
- %* above copyright notice. No title to and ownership of the */
- %* software is hereby transfered. The information in this software */
- %* is subject to change without notice and should not be construed */
- %* as a commitment by Liberty Systems. */
- %* */
- %**********************************************************************/
-
- false limitaccess
- /@bd { bind def } bind def
-
- %
- % Initialize the error handling
- %
-
- /$error <<
- /newerror false
- /recordstacks true
- /binary false
- >> def
-
- /@err_name 20 string def
- /@ostack 10 array def
- /@estack 250 array def
- /@dstack 20 array def
- /@err_file (%stderr) (w) file def
-
- /@std_ehandler {
- currentfile resetfile
- false setglobal
- $error begin
- /newerror true def
- /errorname exch def
- /command exch def
- @ostack length count lt {@ostack length}{count}ifelse
- @ostack exch 0 exch getinterval astore /ostack exch def
- ostack aload pop
- @estack execstack /estack exch def
- @dstack dictstack /dstack exch def
- end stop } @bd
-
- /errordict <<
- /handleerror {
- signalerror
- @err_file (Error Type: ) writestring
- @err_file $error /errorname get @err_name cvs writestring
- @err_file (\nCurrent Object: ) writestring
- $error /command get =
- % @err_file (Operand Stack: ) writestring
- % $error /ostack get ==
- % @err_file (Execution Stack: ) writestring
- % $error /estack get ==
- % @err_file (Dictionary Stack: ) writestring
- % $error /dstack get ==
- $error /newerror false put }
- /configurationerror { /configurationerror @std_ehandler }
- /dictfull { /dictfull @std_ehandler }
- /dictstackoverflow { /dictstackoverflow @std_ehandler }
- /dictstackunderflow { /dictstackunderflow @std_ehandler }
- /execstackoverflow { /execstackoverflow @std_ehandler }
- /interrupt { /interrupt @std_ehandler }
- /invalidaccess { /invalidaccess @std_ehandler }
- /invalidcontext { /invalidcontext @std_ehandler }
- /invalidexit { /invalidcontext @std_ehandler }
- /invalidfileaccess { /invalidfileaccess @std_ehandler }
- /invalidfont { /invalidfont @std_ehandler }
- /invalidid { /invalidid @std_ehandler }
- /invalidrestore { /invalidrestore @std_ehandler }
- /ioerror { /ioerror @std_ehandler }
- /limitcheck { /limitcheck @std_ehandler }
- /nocurrentpoint { /nocurrentpoint @std_ehandler }
- /rangecheck { /rangecheck @std_ehandler }
- /stackoverflow { /stackoverflow @std_ehandler }
- /stackunderflow { /stackunderflow @std_ehandler }
- /syntaxerror { /syntaxerror @std_ehandler }
- /timeout { /timeout @std_ehandler }
- /typecheck { /typecheck @std_ehandler }
- /undefined { /undefined @std_ehandler }
- /undefinedfilename { /undefinedfilename @std_ehandler }
- /undefinedresource { /undefinedresource @std_ehandler }
- /undefinedresult { /undefinedresult @std_ehandler }
- /unmatchedmark { /unmatchedmark @std_ehandler }
- /unregistered { /unregistered @std_ehandler }
- /VMerror { /VMerror @std_ehandler }
- /sysmem { /sysmem @std_ehandler } >> def
-
- %
- % Initialize encodings
- %
-
- /StandardEncoding [/.notdef 31{dup}repeat/space/exclam
- /quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
- /parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three
- /four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater
- /question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z
- /bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b
- /c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright
- /asciitilde/.notdef 33{dup}repeat/exclamdown/cent/sterling/fraction/yen
- /florin/section/currency/quotesingle/quotedblleft/guillemotleft
- /guilsinglleft/guilsinglright/fi/fl/.notdef/endash/dagger/daggerdbl
- /periodcentered/.notdef/paragraph/bullet/quotesinglbase/quotedblbase
- /quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown
- /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent/dieresis
- /.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron/emdash/.notdef
- 15{dup}repeat/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef
- /Lslash/Oslash/OE/ordmasculine/.notdef 4{dup}repeat/ae/.notdef/.notdef
- /.notdef/dotlessi/.notdef/.notdef/lslash/oslash/oe/germandbls/.notdef
- /.notdef/.notdef/.notdef] def
- /ISOLatin1Encoding [ StandardEncoding 0 128 getinterval aload pop
- 83 -1 roll pop /minus 83 1 roll
- /.notdef 15{dup}repeat/dotlessi/grave/acute/circumflex/tilde/macron
- /breve/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
- /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
- /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen
- /registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
- /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright
- /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex
- /Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis
- /Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex
- /Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis
- /Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring
- /ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute
- /icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde
- /odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute
- /thorn/ydieresis] def
- /SymbolEncoding [ StandardEncoding 0 32 getinterval aload pop
- /space/exclam/universal/numbersign/existential/percent/ampersand/suchthat
- /parenleft/parenright/asteriskmath/plus/comma/minus/period/slash/zero/one
- /two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal
- /greater/question/congruent/Alpha/Beta/Chi/Delta/Epsilon/Phi/Gamma/Eta
- /Iota/theta1/Kappa/Lambda/Mu/Nu/Omicron/Pi/Theta/Rho/Sigma/Tau/Upsilon
- /sigma1/Omega/Xi/Psi/Zeta/bracketleft/therefore/bracketright
- /perpendicular/underscore/radicalex/alpha/beta/chi/delta/epsilon/phi/gamma
- /eta/iota/phi1/kappa/lambda/mu/nu/omicron/pi/theta/rho/sigma/tau/upsilon
- /omega1/omega/xi/psi/zeta/braceleft/bar/braceright/similar/.notdef
- 33{dup}repeat/Upsilon1/minute/lessequal/fraction/infinity/florin/club
- /diamond/heart/spade/arrowboth/arrowleft/arrowup/arrowright/arrowdown
- /degree/plusminus/second/greaterequal/multiply/proportional/partialdiff
- /bullet/divide/notequal/equivalence/approxequal/ellipsis/arrowvertex
- /arrowhorizex/carriagereturn/aleph/Ifraktur/Rfraktur/weierstrass
- /circlemultiply/circleplus/emptyset/intersection/union/propersuperset
- /reflexsuperset/notsubset/propersubset/reflexsubset/element/notelement
- /angle/gradient/registerserif/copyrightserif/trademarkserif/product
- /radical/dotmath/logicalnot/logicaland/logicalor/arrowdblboth
- /arrowdblleft/arrowdblup/arrowdblright/arrowdbldown/lozenge/angleleft
- /registersans/copyrightsans/trademarksans/summation/parenlefttp
- /parenleftex/parenleftbt/bracketlefttp/bracketleftex/bracketleftbt
- /bracelefttp/braceleftmid/braceleftbt/braceex/.notdef/angleright/integral
- /integraltp/integralex/integralbt/parenrighttp/parenrightex/parenrightbt
- /bracketrighttp/bracketrightex/bracketrightbt/bracerighttp/bracerightmid
- /bracerightbt/.notdef] def
-
- %
- % Initialize the resources
- %
-
- /@defres { dup type .rd/InstanceType get ne { errordict /typecheck get exec } if
- .rd/Instances get 3 1 roll dup 4 1 roll put } @bd
- /@udefres { .rd/Instances get exch undef } @bd
- /@fndres { .rd/Instances get exch get } @bd
- /@resstt { .rd/Instances get exch known dup { 0 -1 3 -1 roll } if } @bd
- /@resfor { .rd/Instances get {pop 3 index wild {2 index exec} {pop} ifelse}
- forall pop pop pop } @bd
- /@generic { /DefineResource {@defres} /UndefineResource {@udefres}
- /FindResource {@fndres} /ResourceStatus {@resstt}
- /ResourceForAll {@resfor} /ResourceFileName {@resnam}
- /Catagory } @bd
- /@fnt_defres { dup /FontName 3 index put dup /FID 1 put readonly @defres } @bd
- /@fnt_fndres { dup .rd/Instances get exch known {@fndres}
- {dup fontcheck {dup fontload @fndres}
- {/Courier eq {errordict /invalidfont get exec}if /Courier
- @fnt_fndres}ifelse} ifelse } @bd
- /@fnt_setup { /DefineResource {@fnt_defres} /UndefineResource {@udefres}
- /FindResource {@fnt_fndres} /ResourceStatus {@resstt}
- /ResourceForAll {@resfor} /ResourceFileName {@resnam}
- /Catagory } @bd
-
- /FontDirectory <<>> def
- /SharedFontDirectory FontDirectory def
- /GlobalFontDirectory FontDirectory def
- true setglobal
-
- /@catagory <<
- /Font << @fnt_setup /Font /InstanceType /dicttype /Instances FontDirectory >>
- /Encoding << @generic /Encoding /InstanceType /arraytype /Instances
- << /StandardEncoding StandardEncoding /ISOLatin1Encoding
- ISOLatin1Encoding >> >>
- /Form << @generic /Form /InstanceType /dicttype /Instances << >> >>
- /Pattern << @generic /Pattern /InstanceType /dicttype /Instances << >> >>
- /ProcSet << @generic /ProcSet /InstanceType /dicttype /Instances << >> >>
- /ColorSpace << @generic /ColorSpace /InstanceType /arraytype /Instances
- << >> >>
- /Halftone << @generic /Halftone /InstanceType /dicttype /Instances << >> >>
- /ColorRendering << @generic /ColorRendering /InstanceType /dicttype
- /Instances << >> >>
-
- /Filter << @generic /Filter /InstanceType /nametype /Instances
- << /ASCIIHexEncode dup /ASCIIHexDecode dup /ASCII85Encode dup
- /ASCII85Decode dup /LZWEncode dup /LZWDecode dup
- /RunLengthEncode dup /RunLengthDecode dup /CCITTFaxEncode dup
- /CCITTFaxDecode dup /DCTEncode dup /DCTDecode dup
- /NullEncode dup /SubFileDecode dup >> >>
- /ColorSpaceFamily << @generic /ColorSpaceFamily /InstanceType /nametype
- /Instances << /DeviceGray dup /DeviceRGB dup /DeviceCMYK dup
- /CIEBasedABC dup /CIEBasedA dup /Pattern dup /Indexed dup
- /Separation dup >> >>
- /Emulator << @generic /Emulator /InstanceType /nametype /Instances << >> >>
- /IODevice << @generic /IODevice /InstanceType /nametype /Instances << >> >>
- /ColorRenderingType << @generic /ColorRenderingType /InstanceType
- /integertype /Instances << >> >>
- /FMapType << @generic /FMapType /InstanceType /integertype /Instances
- << >> >>
- /FontType << @generic /FontType /InstanceType /integertype /Instances
- << 0 dup 1 dup 3 dup >> >>
- /FormType << @generic /FormType /InstanceType /integertype /Instances
- << >> >>
- /HalftoneType << @generic /HalftoneType /InstanceType /integertype
- /Instances << >> >>
- /ImageType << @generic /ImageType /InstanceType /integertype /Instances
- << >> >>
- /PatternType << @generic /PatternType /InstanceType /integertype /Instances
- << >> >>
-
- /Catagory << @generic /Catagory /InstanceType /dicttype >>
- /Generic << @generic /Generic >>
- >> def
-
- @catagory /Catagory get /Instances @catagory put
-
- false setglobal
-
- %
- % Initialize the resource tokens
- %
-
- /@resbegin { @catagory exch get /.rd exch def } @bd
- /defineresource { false limitaccess @resbegin .rd/DefineResource get exec true limitaccess } @bd
- /undefineresource { false limitaccess @resbegin .rd/UndefineResource get exec true limitaccess } @bd
- /findresource { false limitaccess @resbegin .rd/FindResource get exec true limitaccess } @bd
- /resourcestatus { false limitaccess @resbegin .rd/ResourceStatus get exec true limitaccess } @bd
- /resourceforall { false limitaccess @resbegin .rd/ResourceForAll get exec true limitaccess } @bd
-
- %
- % Define font related tokens
- %
-
- /@mtx1 matrix def
- /@mtx2 matrix def
- /@fakefont { <<
- /FontName 5 -1 roll /FontMatrix 6 -1 roll /UniqueID 7 -1 roll
- /UniqID 1 index
- /FontInfo <<
- /version () /Notice () /FullName () /Weight () /ItalicAngle 0
- /isFixedPitch false /UnderlinePosition 0 /UnderlineThickness 20 >>
- /Encoding 13 -1 roll {SymbolEncoding}{StandardEncoding}ifelse
- /PaintType 0
- /FontType 1 /Device true /FontBBox {0 0 1000 1000} /Metrics <<>>
- /StrokeWidth 0 /Private <<>> /CharStrings <</space {}>> /FID 1 >>
- dup /FontName get exch definefont pop } @bd
- /@val_font { type /dicttype eq not
- { errordict /typecheck get exec } if } @bd
-
- /scalefont { 1 index @val_font exch 1 dict copy dup dup /FontMatrix get
- @mtx1 copy 4 -1 roll dup @mtx2 scale matrix concatmatrix
- /FontMatrix exch put } @bd
- /makefont { 1 index @val_font exch 1 dict copy dup dup /FontMatrix get
- @mtx1 copy 4 -1 roll matrix concatmatrix /FontMatrix exch put } @bd
- /findfont { /Font findresource } @bd
- /definefont { /Font defineresource } @bd
- /undefinefont { /Font undefineresource } @bd
-
- %
- % Initialize some tokens
- %
-
- /@savglob false def
- /@cachelimit 250 def
- /@cachesize 100000 def
- /@cachelower 25 def
- /@ucachelimit 0 def
- /@packing false def
- /@ismatrix {dup type /arraytype eq
- {dup length 6 eq{
- /@ismtx true def
- {dup type /realtype eq exch type /integertype eq or not
- {/@ismtx false def exit}if}forall
- @ismtx}
- {pop false}ifelse}{pop false}ifelse} @bd
- /@drawrect
- {4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto
- neg 0 rlineto closepath} @bd
-
- /prompt { (PS> ) print flush } @bd
- /handleerror { errordict /handleerror get exec } @bd
- /execuserobject { userdict /UserObjects get exch get exec } @bd
- /undefineuserobject { userdict /UserObjects get exch null put } @bd
- /defineuserobject { 1 index 0 lt { errordict /rangecheck get exec } if
- systemdict /@savglob currentglobal put false setglobal
- userdict /UserObjects 2 copy known not
- { 2 copy 5 index 99 add 100 idiv 100 mul array put } if
- get dup length 3 index exch ge
- { 2 index 99 add 100 idiv 100 mul array exch 1 index copy pop
- dup userdict /UserObjects 3 -1 roll put } if
- 3 1 roll put
- systemdict /@savglob get setglobal } @bd
- /findencoding { /Encoding findresource } @bd
- /version (54.0) def
- /languagelevel 2 def
- /product (Liberty Systems - PSI) def
- /revision 320 def
- /start { product print ( Revision: ) print revision 100 div
- @err_name cvs print (\n) print
- (Copyright (C) 1993-1997 Liberty Systems, Redlands, CA.\n) print
- (All rights reserved.\n) print } @bd
- /setgray { /DeviceGray setcolorspace setcolor } @bd
- /setrgbcolor { /DeviceRGB setcolorspace setcolor } @bd
- /setcmykcolor { /DeviceCMYK setcolorspace setcolor } @bd
- /showpage { copypage erasepage } @bd
- /currentscreen { currentcolorscreen 12 3 roll 9 { pop } repeat } @bd
- /setscreen { 3 { 3 copy } repeat setcolorscreen
- currentscreen 3 1 roll pop pop
- -.5 -.5 2 index exec pop
- .5 -.5 2 index exec pop
- -.5 .5 2 index exec pop
- .5 .5 2 index exec pop pop } @bd
- 20 0 {pop} setscreen
- /strokepath {} @bd
- /echo {pop} @bd
- /initgraphics { initmatrix newpath initclip 1 setlinewidth 0 setlinecap
- 0 setlinejoin [] 0 setdash 0 setgray 10 setmiterlimit } @bd
- /setcachelimit { dup type /integertype eq { systemdict begin /@cachelimit exch def end}
- { errordict /typecheck get exec } ifelse } @bd
- /cachestatus {systemdict begin 0 @cachesize 0 40 0 500 @cachelimit end} @bd
- /setcacheparams {
- systemdict begin
- dup type /marktype ne {/@cachelimit exch def}if
- dup type /marktype ne {/@cachelower exch def}if
- dup type /marktype ne {/@cachesize exch def}if
- cleartomark end} @bd
- /currentcacheparams {systemdict begin
- mark @cachesize @cachelower @cachelimit end} @bd
- /setucacheparams {
- dup type /marktype ne {/@ucachelimit exch def}if
- cleartomark} @bd
- /ucachestatus {mark 0 0 0 0 @ucachelimit} @bd
- /setcachedevice { 4{pop}repeat setcharwidth } @bd
- /setcachedevice2 { 8{pop}repeat setcharwidth } @bd
- /execform { gsave dup /Matrix get concat
- dup /BBox get aload pop exch 3 index sub exch 2 index sub
- rectclip dup /PaintProc get exec grestore } @bd
- /selectfont { dup type /arraytype eq
- {exch findfont exch makefont setfont}
- {exch findfont exch scalefont setfont} ifelse } @bd
- /ucache {} @bd
- /setshared {setglobal} @bd
- /currentshared {currentglobal} @bd
- /ufill {gsave newpath uappend fill grestore} @bd
- /ueofill {gsave newpath uappend eofill grestore} @bd
- /ustroke {gsave newpath dup @ismatrix{exch uappend concat}
- {uappend}ifelse stroke grestore} @bd
- /ustrokepath {newpath dup @ismatrix
- {exch uappend matrix currentmatrix exch concat strokepath setmatrix}
- {newpath uappend strokepath}ifelse} @bd
- /upath {[exch{/ucache cvx}if pathbbox/setbbox cvx
- {/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx}pathforall]cvx} @bd
- /uappend {dup type /arraytype eq exch dup type /packedarraytype eq 3 -1 roll
- or not {errordict /typecheck get exec}if dup length 2 eq
- {uappendencoded}{systemdict begin cvx exec end}ifelse} @bd
- /packedarray {array astore readonly} @bd
- /setpacking {systemdict begin /@packing exch def end} @bd
- /setpacking {systemdict begin /@packing exch def end} @bd
- /currentpacking {systemdict /@packing get} @bd
- /printobject {(%stdout)(w)file 3 1 roll writeobject} @bd
- /setpagedevice {pop} @bd
- /currentdevparams {pop <<>>} @bd
- /setdevparams {pop pop} @bd
- /currentsystemparams {<<>>} @bd
- /setsystemparams {pop} @bd
- /currentuserparams {<<>>} @bd
- /setuserparams {pop} @bd
- /currentcolorrendering {<<>>} @bd
- /setcolorrendering {pop} @bd
- /ineofill {
- dup type /arraytype eq 1 index type /packedarraytype eq or
- {gsave newpath uappend intersectingpaths grestore}
- {xyineofill}ifelse} @bd
- /infill {
- dup type /arraytype eq 1 index type /packedarraytype eq or
- {gsave newpath uappend intersectingpaths grestore}
- {xyinfill}ifelse} @bd
- /instroke {
- dup type /arraytype eq 1 index type /packedarraytype eq or
- {gsave newpath uappend intersectingpaths grestore}
- {xyinstroke}ifelse} @bd
- /inueofill {gsave newpath uappend ineofill grestore} @bd
- /inufill {gsave newpath uappend infill grestore} @bd
- /inustroke {gsave newpath dup @ismatrix{exch uappend concat}
- {uappend}ifelse instroke grestore} @bd
- /setpattern {currentcolorspace 0 get /Pattern ne
- {[/Pattern currentcolorspace]setcolorspace}if setcolor} @bd
- /makepattern {gsave concat <<>> copy dup newpath
- gstate currentgstate /Implementation exch put grestore} @bd
- /rootfont {currentfont} @bd
- /startjob {pop pop false} @bd
- /=print {(%stdout)(w)file exch dup type /stringtype eq
- {writestring} {save 3 1 roll 256 string cvs writestring restore}
- ifelse} @bd
- <</Angle 0. /SpotFunction {} /HalftoneType 1 /Frequency 10.>> sethalftone
-
- /letter { statusdict begin 0 setpagetype end } def
- /note { statusdict begin 1 setpagetype end } def
- /legal {} def
- /a4 {} def
-
- %
- % Create the page device dictionary
- %
-
- /currentpagedevice
- << /PageSize [792 792]
- /MediaColor null
- /MediaWeight null
- /MediaType null
- /InputAttributes <<>>
- /ManualFeed false
- /ImagingBBox null
- /OutputType null
- /OutputAttributes <<>>
- /NumCopies null
- /Collate false
- /Duplex false
- /Tumble false
- /OutputFaceUp false
- /Jog 0
- /Separations false
- /HWResolution [400 400]
- /Margins [0 0]
- /NegativePrint false
- /MirrorPrint false
- /Orientation 0
- /CutMedia 0
- /AdvanceMedia 0
- /AdvanceDistance 0
- /Policies <<>>
- /Install {}
- /BeginPage {}
- /EndPage {} >> def
-
- %
- % Create the 'statusdict' dictionary
- %
-
- /statusdict
- << /product (Liberty Systems - PSI)
- /processcolors 3
- /setpageparams {4{pop}repeat}
- /setjobtimeout {pop}
- /lettertray {}
- /setduplexmode {pop}
- /settumble {pop}
- /setpagetype {statusdict exch /pagetype exch put} >> def
-
- %
- % Initialize the global and user dictionary
- %
-
- /globaldict true setglobal 200 dict false setglobal def
- /shareddict globaldict def
- /userdict 200 dict def
- globaldict begin
- userdict begin
- true limitaccess
- /Times-Roman findfont 12 scalefont setfont
- /=string 256 string def
-